package com.example.hxds.bff.customer.service;

import com.example.hxds.bff.customer.controller.form.CreateNewOrderForm;

/**
 * @program: hxds
 * @description: 订单服务接口
 * @author: noah2021
 * @date: 2023-01-14 01:01
 **/
public interface OrderService {


    /**
     * 创建新订单
     * @param form
     * @return
     */
    HashMap createNewOrder(CreateNewOrderForm form);


    /**
     * 查询订单状态
     * @param form
     * @return
     */
    Integer searchOrderStatus(SearchOrderStatusForm form);


    /**
     * 删除未接单订单
     * @param form
     * @return
     */
    String deleteUnAcceptOrder(DeleteUnAcceptOrderForm form);


    /**
     * 查询当前订单
     * @param form
     * @return
     */
    HashMap hasCustomerCurrentOrder(HasCustomerCurrentOrderForm form);


    /**
     *  查询订单信息
     * @param form
     * @return
     */
    HashMap searchOrderForMoveById(SearchOrderForMoveByIdForm form);


    /**
     * 确认到达
     * @param form
     * @return
     */
    boolean confirmArriveStartPlace(ConfirmArriveStartPlaceForm form);


    /**
     * 查询订单信息
     * @param form
     * @return
     */
    HashMap searchOrderById(SearchOrderByIdForm form);


    /**
     * 创建微信支付
     * @param orderId
     * @param customerId
     * @param customerVoucherId
     * @param voucherId
     * @return
     */
    HashMap createWxPayment(long orderId, long customerId, Long customerVoucherId, Long voucherId);


    /**
     * 更新订单支付状态
     * @param form
     * @return
     */
    String updateOrderAboutPayment(UpdateOrderAboutPaymentForm form);


    /**
     * 分页查询客户订单
     * @param form
     * @return
     */
    PageUtils searchCustomerOrderByPage(SearchCustomerOrderByPageForm form);
}
